package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 分类对象
 *
 * @author ruoyi
 * @date 2025-03-31
 */


@Data
public class GlueCategory
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 分类名称 */
    @Excel(name = "分类名称")
        private String categoryName;


    /** 分类类型编号 */
    @Excel(name = "分类类型编号")
    private Long categoryTypeId;


    /** 父ID，顶级分类为NULL */
    @Excel(name = "父ID，顶级分类为NULL")
    private Long parentId;

    /** 父名称，顶级分类为空 */
    @Excel(name = "父名称，顶级分类为空")
    private String parentName;

    /** 排序，数值越小越靠前 */
    @Excel(name = "排序，数值越小越靠前")
    private Long sortOrder;

    /** 图片URL */
    @Excel(name = "图片URL")
    private String imageUrl;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 下级
     */
    @TableField(exist = false)
    List<GlueCategory> sonGlueCategory=new ArrayList<>();

}
